﻿@page "/demo"

@* 使用auto后，首先会服务端渲染，能够拿到随机值和配置值，后续则为客户端渲染，拿不到服务，因此报错，如果服务注册到了Client的Program，但是Client不允许拿配置，取不到值 *@
@* @rendermode InteractiveAuto *@

@* 使用Server后，仍然服务端渲染，能够拿到随机值和配置值，每次刷新都是从服务端拿 *@
@* @rendermode InteractiveServer *@

@* 使用WebAssembly后，随机函数注册了的情况下，如何解释一开始访问时展示了服务端的值，随后又消失不见，随机值也变换了一次 *@
@rendermode InteractiveWebAssembly

@* 总结，在Auto和WebAssembly下，第一次能够看到配置值后会自动刷一下，配置值被撤销看不见，Auto能够理解，毕竟先为服务端渲染，后续才客户端渲染，但是WebAssembly完全客户端渲染，怎么会出现能够看到初始值？ *@
@inject DemoDependency demo
@inject IConfiguration config

<h3>Demo This is a Component @DateTime.Now</h3>
<h4>Random:@demo.GetRandom()</h4>

<p>
    <label>Config</label>
    @GetConnectionString()
</p>

@code {
    public string? GetConnectionString()
    {
        return config.GetConnectionString("Default");
    }
}
